package shujia.day11;

import java.util.HashSet;

/*
    Collection【接口】：
        - List【接口】元素有序【添加和取出的顺序一致】，允许发生重复，有索引
            - ArrayList: 底层数据结构是数组，查询快，增删慢，线程不安全，效率高
            - Vector: 底层数据结构是数组，查询快，增删慢，线程安全，效率低，即便安全我们以后也不用
            - LinkedList: 底层数据结构是双链表，增删快，查询慢，线程不安全，效率高
        - Set【接口】元素无序【添加和取出的顺序不一致】，且唯一
            - HashSet: 底层数据结构是哈希表，线程不安全，效率高，能够保证元素的唯一
            - TreeSet

 */
public class SetDemo1 {
    public static void main(String[] args) {
        // HashSet() 构造一个新的空集合; 背景HashMap实例具有默认初始容量（16）和负载因子（0.75）。
        HashSet<String> set1 = new HashSet<>();

        // 因为Set是Collection的子接口，HashSet是Set接口的实现类，里面必然也重写了父接口中所有的抽象方法
        set1.add("hello");
        set1.add("world");
        set1.add("hello");
        set1.add("java");
        set1.add("hello");
        set1.add("hadoop");

        for (String s : set1) {
            System.out.println(s);
        }

    }
}
